package com.lanou3g.code0512.request;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
今日课程小结:
1.各个概念的联系:浏览器,http,IP,端口号,Tomcat,Servlet,服务器
2.表单及表单的get方法
3.编码的转换:utf-8,iso-8859-1,GBK
4.
 */
/*
1.各个概念的联系:
(1)后台(服务器,本质上就是一台电脑),然后在这个电脑上安装一个软件叫做Tomcat(它的启动文件.sh)
(2)Http是TCP/IP协议组里的一个应用层协议,它是一个无状态的协议,他可以传输任何的文件信息,
例如:文字信息,留信息,它底层使用的是TCP协议;TCP协议决定的是数据怎么传,Http协议绝定的是传的
数据是什么意思(类似翻译),比如:你传个文件,本质上文件都是0和1组成,传过去怎么理解,就是Http的作用
但是,要怎么传呢,就通过IP地址和端口号来传了
2.联系过程:以服务器自己访问自己为类(与客户端访问一样的原理)
发布了一个网页游戏,它的服务器为tomcat(软件)->服务器(客户端)想要访问并且要做登录等等一些操作->它通过浏览器(http,IP,端口号)
->找到了这个服务器,服务器再使用Tomcat,Tomcat根据你请求的URL,找到对应的Servlet->Servlet根据你的请求,给你返回了一些数据,
->
 */

/**
 * Created by dllo on 18/5/12.
 */
//第三种方法:在tomcat的conf-server配置文件里,加上URIEncoding="utf-8"
@WebServlet(name = "RequestServlet", urlPatterns = "/search")
public class RequestServlet extends HttpServlet {
    //解决汉字乱码的方法:
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        //response.setCharacterEncoding("gbk");
        //第二种方法:
        //在获取参数之前,告诉tomcat参数是utf-8编码的
        //在get请求中,这种方式不行
        //request.setCharacterEncoding("utf-8");
        String keyword = request.getParameter("keyword");
        //第一种方法:
//        byte[] bytes = keyword.getBytes("iso-8859-1");
//        keyword = new String(bytes, "utf-8");
        response.getWriter().println("用户输入的是:" + keyword);
    }
}
